//
//  main.c
//  直接插入排序sort
//
//  Created by Song on 2018/3/27.
//  Copyright © 2018年 Song. All rights reserved.
//

#include <stdio.h>

void asd() {
    int a[6] = {3,5,4,6,1,2};
    
    int i,j,temp;
    
    for (i = 1; i < 6; i++) {
        
        if (a[i] < a[i-1]) {
            temp = a[i]; // 哨兵
            for (j = i-1; a[j] > temp && j>=0; j--) { // 这里有变化
                /*
                 在方法中，当j = -1 时，不会跳出循环（不知道为啥）
                 如果不加上 j>=0 的限制，打印出来的 j = -2，是不对的
                 */
                
                a[j+1] = a[j];
            }
            a[j+1] = temp;
        }
    }
    
    for (int b = 0; b < 6; b++) {
        printf("%d - ",a[b]);
    }
    printf("\n");
}

int main(int argc, const char * argv[]) {
    
    asd();
    
    int a[6] = {3,5,4,6,1,2};

    int i,j,temp;
    
    for (i = 1; i < 6; i++) {
        
        if (a[i] < a[i-1]) {
            temp = a[i]; // 哨兵
            for (j = i-1; a[j] > temp; j--) {
                a[j+1] = a[j];
            }
            a[j+1] = temp;
        }
    }
    
    for (int b = 0; b < 6; b++) {
        printf("%d - ",a[b]);
    }
    printf("\n");
    return 0;
}
